package com.ylbh.modules.shoppingcoupon.mapper;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ylbh.common.pojo.shoppingcoupon.dto.QueryCouponGoodsDTO;
import com.ylbh.common.pojo.shoppingcoupon.dto.ShoppingCouponDTO;
import com.ylbh.common.pojo.shoppingcoupon.vo.AddCouponGoodsListVO;
import com.ylbh.common.pojo.shoppingcoupon.vo.ShoppingCouponListVO;
import com.ylbh.modules.shoppingcoupon.entity.ShoppingCoupon;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 *
 * 商城优惠券
 * @author czx
 * @date 2019-10-30 13:52:37
 */
@Mapper
@Repository
public interface ShoppingCouponMapper extends BaseMapper<ShoppingCoupon> {

    /**
     * 商城优惠券列表信息
     * @param shoppingCouponDTO
     * @param page
     * @return
     */
    List<ShoppingCouponListVO> selectCouponList(@Param(value = "shoppingCouponDTO") ShoppingCouponDTO shoppingCouponDTO, Page<Integer> page);

    /**
     * 商品的一级分类id去查询商品
     * @param dto
     * @return
     */
    List<AddCouponGoodsListVO> selectGoodsByGoodsClass(@Param(value = "dto") QueryCouponGoodsDTO dto, Page page);

    /**
     * 根据id去专题中查询商品
     * @param dto
     * @return
     */
    List<AddCouponGoodsListVO> selectGoodsBySpecialId(@Param(value = "dto") QueryCouponGoodsDTO dto, Page page);

    /**
     * 新增商品优惠券
     * @param shoppingCoupon
     */
    void insertShoppingCoupon(ShoppingCoupon shoppingCoupon);

    /**
     * 查询商品所有商品
     * @param dto
     * @param page
     * @return
     */
    List<AddCouponGoodsListVO> selectAllGoods(@Param(value = "dto") QueryCouponGoodsDTO dto, Page<Integer> page);

    /**
     * 查询商城优惠券详情
     * @param id
     * @return
     */
    ShoppingCoupon selectCouponInfoById(String id);

    /**
     * 修改商城优惠券信息
     * @param shoppingCoupon
     */
    void updateCouponById(ShoppingCoupon shoppingCoupon);

    /**
     * 商城优惠券启用与关闭
     * @param id
     * @param state
     */
    void updateCouponStateById(String id, Integer state);

    /**
     * 删除商城优惠券
     * @param ids
     */
    void updateCouponByIds(@Param(value = "ids") List<String> ids);
}
